“Text messaging” or “texting” refers to the exchange of brief written messages between mobile phones over cellular networks. In some embodiments, text messages are restricted to 160 characters or fewer, although in other embodiments, text messages may be longer, or even unrestricted in length, and may include media objects. Text messages may be sent via various communications protocols, including Short Message Service (“SMS”), Enhanced Messaging Service (“EMS”), Multimedia Messaging Service (“MMS”), and other protocols.
“Bidirectional text messaging” refers to the ability for two devices to communicate back and forth, i.e., a message is sent from device A to device B, and a reply is sent from device B to device A. Another example is a message is sent from a software application by user A to device B and the reply is sent from device B to user A with message routing performed by the software application.
“Short codes” are numbers, similar to telephone numbers, which can be used to address text messages. Short codes commonly range in length from four to twelve digits, although in other embodiments, short codes may be longer or shorter. Short codes can be obtained via the CSCA (Common Short Code Authority) or via proprietary short code extensions obtained directly through negotiations with wireless carriers. If obtained through the CSCA, the short code will be provisioned with all carriers associated with the SMS Aggregator with which the code is filed. If obtained directly through wireless carriers, the short code will only be provisioned to carry text messages to that specific carrier network. Short codes are referred to as “threads,” “Thread IDs” or “Forward Thread IDs” in this document depending on their context. “Threads” refer to short codes, including 10 digit telephone numbers, used to address text messages.
“Thread suffix” refers to the last four digits of a thread.
“Thread suffix vector” refers to the first two digits of the thread suffix and indicates who or what (in the case of a device) is in control of the message. A vector of 00 means the sender is in control. A vector of 01 means the recipient is in control.
“Channel ID” refers to the last two digits of a thread suffix. The Channel ID is made consistent across all threads and forward threads used for text messaging.
“Threading System” refers to the software based rules and logic applied to the allocation of Thread IDs and Forward Thread IDs.
“SMS gateway” is the term used to describe a service transforming messages to mobile network traffic from other media, or vice versa, allowing transmission or receipt of SMS messages without the use of a mobile phone. Typical use of a gateway would be to forward simple e-mail to a mobile phone recipient. Thus, the SMS gateway facilitates texting between mobile devices and non-mobile devices, thereby extending the typical definition of texting.
“Device” refers to any mobile device or non-mobile device that can send or receive text messages. The device may rely upon a wireless data connection, internet access, or the appropriate software to send and receive text messages.
“MDN” refers to the mobile device number associated with any device.
“Software Application” refers to a software application on a client machine, web interface, or numerous other hosts that use the threading system. Software can also be defined as anywhere a user or device originates a text message or it can be defined as any application that contains the Threading System.
“Subscriber” refers to a user of a Software Application as defined herein.
“Smart Forwarding” refers to a message forwarding delay technique in which the subscriber designates the device and the time that a message will be automatically forwarded according to a systematic event, such as an unread message.
There have been various implementations of software to mobile-only-device text messaging using Thread IDs. Companies such as AOL®, Google®, Microsoft®, and Yahoo® have implemented text messaging features in their respective Instant Messaging clients (and other similar applications, e.g., Google Voice®), however no one to date has allowed for permanent thread provisioning for the purpose of computer to device, device to computer, and device to device communications. Rather the technique to date has been to deliver messages to a mobile phone using a temporarily provisioned Thread ID that expires shortly after being used. This does not allow the message recipient to reply at any time because with no thread provisioned, there is no longer a reply path.
Applications have used SMS Gateways to send messages from a computer to a device or device to device, however these techniques employ the use of wireless carrier email extensions associated with the mobile number, which is unreliable and does not allow for user memorization or intuitive use.
Therefore, it would be desirable to provide a texting technique that does not rely upon wireless carrier email extensions.
With current SMS Gateway or email-to-SMS messaging systems, the subscriber of Carrier A must input the full email address of the message recipients wireless carrier, which is often unknown by the subscriber. It would be desirable to circumvent this problem.
It would be desirable to support the permanent provisioning of a unique and easy to memorize Thread ID for text messaging. Further, it would be desirable to employ pre-provisioned Thread IDs and Forwarding Thread IDs to create a dedicated communication channel.